合并文本

【问题描述】

用指定的连接符合并文本。

【示例5-6】

本例使用的Excel文件的完整路径为“D:/Samples/ch05/06 合并文本/合并学生个人信息.xlsx”。该文件打开后如图5-6所示,要求用”、“作为连接符连接姓名、性别和准考证号,列索引字段为”合并信息“。

Document Image

图5-6 学生准考证号

  • 编写下面的代码:
code.python
import pandas as pd
# 读取 Excel 文件并指定引擎为"openpyxl"
df = pd.read_excel('D:/Samples/ch05/06 合并文本/合并学生个人信息.xlsx', engine='openpyxl', sheet_name=0, header=None)
# 取前3行数据
df = df.head(3)
#用”、“作为连接符连接姓名、性别和准考证号,列索引字段为”合并信息“
df['合并信息'] = df['姓名'].astype(str) + '、' + df['性别'].astype(str) + '、' + df['准考证号'].astype(str)
# 输出带有合并信息列的 DataFrame
print(df)

打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出合并后的结果。

code.python
>>> == RESTART: D:/Samples/1.py =
0  姓名 性别       准考证号            合并信息
1  张三  女  202100102  张三、女、202100102
2  李四  男  202100103  李四、男、202100103
3  王五  女  202100104  王五、女、202100104

【知识点扩展】

本例中直接用+实现合并,代码为:

df['合并信息'] = df['姓名'].astype(str) + '、' + df['性别'].astype(str) + '、' + df['准考证号'].astype(str)

可以指定连接符,用join函数进行合并。下面用join函数实现本例。

  • 编写下面的代码:
code.python
import pandas as pd
# 设置文件路径和工作表名称
file_path = 'D:/Samples/ch05/06 合并文本/合并学生个人信息.xlsx'
# 读取Excel文件中第一个工作表前三行数据
df = pd.read_excel(file_path, engine='openpyxl', sheet_name=0, nrows=3)
# 用”、“作为连接符,用join函数连接姓名、性别和准考证号,列索引字段为”合并信息“
df['合并信息'] = df[['姓名', '性别', '准考证号']].astype(str).apply(lambda x: '、'.join(x), axis=1)
# 输出结果
print(df)

打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出合并后的结果。

也可以用cat函数来实现本例,用法如下面语句所示。

code.python
df['合并信息'] = df['姓名'].str.cat(df[['性别', '准考证号']].astype(str), sep='、')